package magchess10.rn.tabuleiro;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

import magchess10.rn.pecas.Pecas;
import magchess10.rn.utils.PecasFactory;

public class Repositorio implements Serializable {

	private static final long serialVersionUID = -9184001631401885040L;
	private Map<String, Integer> quantidadePecas = new HashMap<String, Integer>();

	private String corJogador;

	public Repositorio(String corJogador) {
		this.corJogador = corJogador;
		for (int i = 0; i < 5; i++)
			quantidadePecas.put(PecasFactory.getNomePecaByIndex(i), 0);
	}

	public void incrementar(String nomePeca) {
		int valorAtual = quantidadePecas.get(nomePeca);
		quantidadePecas.put(nomePeca, valorAtual + 1);

	}

	public void decrementar(String nomePeca) {
		int valorAtual = quantidadePecas.get(nomePeca);

		quantidadePecas.put(nomePeca, valorAtual - 1);
	}

	public Pecas getPeca(int indice) {
		String nome = PecasFactory.getNomePecaByIndex(indice);
		if (haPecaPresente(nome)) {
			decrementar(nome);
			return PecasFactory.getPeca(nome, corJogador, false);
		}
		return null;
	}

	private boolean haPecaPresente(String nomePeca) {
		return (quantidadePecas.get(nomePeca) > 0 ? true : false);
	}
}
